🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / build-logic / convention / src / main / kotlin / org / meshtastic / buildlogic / DocsTasks.kt
Displaying Raw • Download
build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/DocsTasks.kt bd2863243bab6eb213401d949839a2bc74dde7e2 (bd286324) Text, 15.81 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.buildlogic
Tff7b72import T7ee787org.gradle.api.DefaultTask
Tff7b72import T7ee787org.gradle.api.Plugin
Tff7b72import T7ee787org.gradle.api.Project
Tff7b72import T7ee787org.gradle.api.file.DirectoryProperty
Tff7b72import T7ee787org.gradle.api.file.RegularFileProperty
Tff7b72import T7ee787org.gradle.api.provider.Property
Tff7b72import T7ee787org.gradle.api.tasks.Input
Tff7b72import T7ee787org.gradle.api.tasks.InputDirectory
Tff7b72import T7ee787org.gradle.api.tasks.InputFile
Tff7b72import T7ee787org.gradle.api.tasks.Optional
Tff7b72import T7ee787org.gradle.api.tasks.OutputDirectory
Tff7b72import T7ee787org.gradle.api.tasks.TaskAction
Tff7b72import T7ee787org.gradle.kotlin.dsl.register
Tff7b72import T7ee787java.io.File
Tff7b72private Tff7b72const Tff7b72val Te6edf3DEFAULT_NAV_ORDER Tff7b72= T79c0ff9T79c0ff9T79c0ff9
Tff7b72private Tff7b72const Tff7b72val Te6edf3MIN_KEYWORD_LENGTH Tff7b72= T79c0ff3
Tff7b72private Tff7b72const Tff7b72val Te6edf3MAX_KEYWORDS Tff7b72= T79c0ff3T79c0ff0
Tff7b72private Tff7b72const Tff7b72val Te6edf3BYTES_PER_MB Tff7b72= T79c0ff1T79c0ff0T79c0ff2T79c0ff4.0 Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4.0
Tff7b72private Tff7b72const Tff7b72val Te6edf3BUNDLE_SIZE_HARD_LIMIT_MB Tff7b72= T79c0ff1T79c0ff0.0
Tff7b72private Tff7b72const Tff7b72val Te6edf3BUNDLE_SIZE_WARN_THRESHOLD_MB Tff7b72= T79c0ff8.0
Tff7b72private Tff7b72val Te6edf3LOCALE_PATTERN Tff7b72= Te6edf3RegexTb4b4b4(Ta5d6ff"Ta5d6ff^[a-z]{2,3}(-r[A-Z]{2})?$Ta5d6ff"Tb4b4b4)
T8b949e/**
* Registers docs generation, validation, and publishing tasks.
*
* Tasks:
* - generateDocsBundle: Converts markdown to HTML + index.json
* - validateDocsBundle: Schema, size, and asset validation
* - publishDocsSite: Generates _site/ artifact for Pages
*/
Tff7b72class T56d364DocsTasks Tb4b4b4: Te6edf3PluginTff7b72<Te6edf3ProjectTff7b72> Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8ffapplyTb4b4b4(Te6edf3projectTb4b4b4: Te6edf3ProjectTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3docsDir Tff7b72= Te6edf3projectTb4b4b4.Te6edf3isolatedTb4b4b4.Te6edf3rootProjectTb4b4b4.Te6edf3projectDirectoryTb4b4b4.Te6edf3dirTb4b4b4(Ta5d6ff"Ta5d6ffdocsTa5d6ff"Tb4b4b4)
Tff7b72val Te6edf3outputDir Tff7b72= Te6edf3projectTb4b4b4.Te6edf3layoutTb4b4b4.Te6edf3buildDirectoryTb4b4b4.Te6edf3dirTb4b4b4(Ta5d6ff"Ta5d6ffgenerated/docsTa5d6ff"Tb4b4b4)
Te6edf3projectTb4b4b4.Te6edf3tasksTb4b4b4.Te6edf3registerTff7b72<Te6edf3GenerateDocsBundleTaskTff7b72>Tb4b4b4(Ta5d6ff"Ta5d6ffgenerateDocsBundleTa5d6ff"Tb4b4b4) Tb4b4b4{
Te6edf3group Tff7b72= Ta5d6ff"Ta5d6ffdocumentationTa5d6ff"
Te6edf3description Tff7b72= Ta5d6ff"Ta5d6ffGenerate packaged docs artifacts and keyword index from markdown source.Ta5d6ff"
Te6edf3sourceDirTb4b4b4.Te6edf3setTb4b4b4(Te6edf3docsDirTb4b4b4)
Te6edf3generatedOutputDirTb4b4b4.Te6edf3setTb4b4b4(Te6edf3outputDirTb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3dirTb4b4b4(Ta5d6ff"Ta5d6ffcommonTa5d6ff"Tb4b4b4) Tb4b4b4}Tb4b4b4)
Te6edf3channelTb4b4b4.Te6edf3setTb4b4b4(Te6edf3projectTb4b4b4.Te6edf3providersTb4b4b4.Te6edf3gradlePropertyTb4b4b4(Ta5d6ff"Ta5d6ffdocs.channelTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3orElseTb4b4b4(Ta5d6ff"Ta5d6ffbetaTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3versionTb4b4b4.Te6edf3setTb4b4b4(Te6edf3projectTb4b4b4.Te6edf3providersTb4b4b4.Te6edf3gradlePropertyTb4b4b4(Ta5d6ff"Ta5d6ffdocs.versionTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3orElseTb4b4b4(Ta5d6ff"Ta5d6ffbetaTa5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Te6edf3projectTb4b4b4.Te6edf3tasksTb4b4b4.Te6edf3registerTff7b72<Te6edf3ValidateDocsBundleTaskTff7b72>Tb4b4b4(Ta5d6ff"Ta5d6ffvalidateDocsBundleTa5d6ff"Tb4b4b4) Tb4b4b4{
Te6edf3group Tff7b72= Ta5d6ff"Ta5d6ffdocumentationTa5d6ff"
Te6edf3description Tff7b72= Ta5d6ff"Ta5d6ffValidate keyword index schema, bundle size, and asset references.Ta5d6ff"
Te6edf3dependsOnTb4b4b4(Ta5d6ff"Ta5d6ffgenerateDocsBundleTa5d6ff"Tb4b4b4)
Te6edf3bundleDirTb4b4b4.Te6edf3setTb4b4b4(Te6edf3outputDirTb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3dirTb4b4b4(Ta5d6ff"Ta5d6ffcommonTa5d6ff"Tb4b4b4) Tb4b4b4}Tb4b4b4)
Te6edf3schemaFileTb4b4b4.Te6edf3setTb4b4b4(
Te6edf3projectTb4b4b4.Te6edf3isolatedTb4b4b4.Te6edf3rootProjectTb4b4b4.Te6edf3projectDirectoryTb4b4b4.Te6edf3fileTb4b4b4(
Ta5d6ff"Ta5d6ffspecs/20260507-161858-app-docs-markdown/contracts/keyword-index-schema.jsonTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Te6edf3projectTb4b4b4.Te6edf3tasksTb4b4b4.Te6edf3registerTff7b72<Te6edf3PublishDocsSiteTaskTff7b72>Tb4b4b4(Ta5d6ff"Ta5d6ffpublishDocsSiteTa5d6ff"Tb4b4b4) Tb4b4b4{
Te6edf3group Tff7b72= Ta5d6ff"Ta5d6ffdocumentationTa5d6ff"
Te6edf3description Tff7b72= Ta5d6ff"Ta5d6ffAssemble the final Pages artifact from generated docs.Ta5d6ff"
Te6edf3dependsOnTb4b4b4(Ta5d6ff"Ta5d6ffgenerateDocsBundleTa5d6ff"Tb4b4b4)
Te6edf3sourceDirTb4b4b4.Te6edf3setTb4b4b4(Te6edf3docsDirTb4b4b4)
Te6edf3bundleDirTb4b4b4.Te6edf3setTb4b4b4(Te6edf3outputDirTb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3dirTb4b4b4(Ta5d6ff"Ta5d6ffcommonTa5d6ff"Tb4b4b4) Tb4b4b4}Tb4b4b4)
Te6edf3siteOutputDirTb4b4b4.Te6edf3setTb4b4b4(Te6edf3projectTb4b4b4.Te6edf3layoutTb4b4b4.Te6edf3buildDirectoryTb4b4b4.Te6edf3dirTb4b4b4(Ta5d6ff"Ta5d6ff_siteTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3channelTb4b4b4.Te6edf3setTb4b4b4(Te6edf3projectTb4b4b4.Te6edf3providersTb4b4b4.Te6edf3gradlePropertyTb4b4b4(Ta5d6ff"Ta5d6ffdocs.channelTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3orElseTb4b4b4(Ta5d6ff"Ta5d6ffbetaTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3versionTb4b4b4.Te6edf3setTb4b4b4(Te6edf3projectTb4b4b4.Te6edf3providersTb4b4b4.Te6edf3gradlePropertyTb4b4b4(Ta5d6ff"Ta5d6ffdocs.versionTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3orElseTb4b4b4(Ta5d6ff"Ta5d6ffbetaTa5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tff7b72data Tff7b72class T56d364IndexEntryTb4b4b4(
Tff7b72val Te6edf3idTb4b4b4: Tffa657StringTb4b4b4,
Tff7b72val Te6edf3titleTb4b4b4: Tffa657StringTb4b4b4,
Tff7b72val Te6edf3sectionTb4b4b4: Tffa657StringTb4b4b4,
Tff7b72val Te6edf3localeTb4b4b4: Tffa657StringTb4b4b4,
Tff7b72val Te6edf3resourcePathTb4b4b4: Tffa657StringTb4b4b4,
Tff7b72val Te6edf3navOrderTb4b4b4: Tffa657IntTb4b4b4,
Tff7b72val Te6edf3keywordsTb4b4b4: Te6edf3ListTff7b72<Tffa657StringTff7b72>Tb4b4b4,
Tff7b72val Te6edf3aliasesTb4b4b4: Te6edf3ListTff7b72<Tffa657StringTff7b72>Tb4b4b4,
Tff7b72val Te6edf3charCountTb4b4b4: Tffa657IntTb4b4b4,
Tb4b4b4)
Tff7b72abstract Tff7b72class T56d364GenerateDocsBundleTask Tb4b4b4: Te6edf3DefaultTaskTb4b4b4(Tb4b4b4) Tb4b4b4{
Tf0883e@getTb4b4b4:Te6edf3InputDirectory Tff7b72abstract Tff7b72val Te6edf3sourceDirTb4b4b4: Te6edf3DirectoryProperty
Tf0883e@getTb4b4b4:Te6edf3OutputDirectory Tff7b72abstract Tff7b72val Te6edf3generatedOutputDirTb4b4b4: Te6edf3DirectoryProperty
Tf0883e@getTb4b4b4:Te6edf3Input Tff7b72abstract Tff7b72val Te6edf3channelTb4b4b4: Te6edf3PropertyTff7b72<Tffa657StringTff7b72>
Tf0883e@getTb4b4b4:Te6edf3Input Tff7b72abstract Tff7b72val Te6edf3versionTb4b4b4: Te6edf3PropertyTff7b72<Tffa657StringTff7b72>
Tf0883e@TaskAction
Tff7b72fun Td2a8ffgenerateTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3src Tff7b72= Te6edf3sourceDirTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFile
Tff7b72val Te6edf3out Tff7b72= Te6edf3generatedOutputDirTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFile
Tff7b72outTb4b4b4.Te6edf3mkdirsTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3entries Tff7b72= Te6edf3processEnglishSourcesTb4b4b4(Te6edf3srcTb4b4b4, Tff7b72outTb4b4b4) Tff7b72+ Te6edf3processLocaleSourcesTb4b4b4(Te6edf3srcTb4b4b4, Tff7b72outTb4b4b4)
Te6edf3writeIndexJsonTb4b4b4(Tff7b72outTb4b4b4, Te6edf3entriesTb4b4b4)
Te6edf3writeCssTb4b4b4(Tff7b72outTb4b4b4)
Te6edf3writeLocalesManifestTb4b4b4(Te6edf3srcTb4b4b4, Tff7b72outTb4b4b4)
Tff7b72val Te6edf3localeCount Tff7b72=
Te6edf3srcTb4b4b4.Te6edf3listFiles Tb4b4b4{ Te6edf3f Tff7b72-Tff7b72> Te6edf3fTb4b4b4.Te6edf3isDirectory Tff7b72&Tff7b72& Te6edf3LOCALE_PATTERNTb4b4b4.Te6edf3matchesTb4b4b4(Te6edf3fTb4b4b4.Te6edf3nameTb4b4b4) Tff7b72&Tff7b72& Te6edf3fTb4b4b4.Te6edf3name Tff7b72!Tff7b72= Ta5d6ff"Ta5d6ffenTa5d6ff" Tb4b4b4}Tff7b72?.Te6edf3size Tff7b72?: T79c0ff0
Te6edf3loggerTb4b4b4.Te6edf3lifecycleTb4b4b4(
Ta5d6ff"Ta5d6ffGenerated docs bundle: Tffd700${Te6edf3entriesTb4b4b4.Te6edf3sizeTffd700}Ta5d6ff pages (Tffd700$Te6edf3localeCountTa5d6ff locales), Ta5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ffchannel=Tffd700${Te6edf3channelTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff, version=Tffd700${Te6edf3versionTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffprocessEnglishSourcesTb4b4b4(Te6edf3srcTb4b4b4: Te6edf3FileTb4b4b4, Tff7b72outTb4b4b4: Te6edf3FileTb4b4b4)Tb4b4b4: Te6edf3ListTff7b72<Te6edf3IndexEntryTff7b72> Tff7b72=
Te6edf3listOfTb4b4b4(Ta5d6ff"Ta5d6ffuserTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdeveloperTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3flatMap Tb4b4b4{ Te6edf3section Tff7b72-Tff7b72>
Tff7b72val Te6edf3sectionDir Tff7b72= Te6edf3FileTb4b4b4(Te6edf3FileTb4b4b4(Te6edf3srcTb4b4b4, Ta5d6ff"Ta5d6ffenTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3sectionTb4b4b4)
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3sectionDirTb4b4b4.Te6edf3existsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTf0883e@flatMap Te6edf3emptyListTb4b4b4(Tb4b4b4)
Tb4b4b4}
Te6edf3sectionDir
Tb4b4b4.Te6edf3listFiles Tb4b4b4{ Te6edf3f Tff7b72-Tff7b72> Te6edf3fTb4b4b4.Te6edf3extension Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffmdTa5d6ff" Tb4b4b4}
Tff7b72?.Te6edf3sortedBy Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3name Tb4b4b4}
Tff7b72?.Te6edf3map Tb4b4b4{ Te6edf3processMarkdownTb4b4b4(Tffa657itTb4b4b4, Te6edf3sectionTb4b4b4, Ta5d6ff"Ta5d6ffenTa5d6ff"Tb4b4b4, Tff7b72outTb4b4b4) Tb4b4b4} Tff7b72?: Te6edf3emptyListTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffprocessLocaleSourcesTb4b4b4(Te6edf3srcTb4b4b4: Te6edf3FileTb4b4b4, Tff7b72outTb4b4b4: Te6edf3FileTb4b4b4)Tb4b4b4: Te6edf3ListTff7b72<Te6edf3IndexEntryTff7b72> Tff7b72=
Te6edf3srcTb4b4b4.Te6edf3listFiles Tb4b4b4{ Te6edf3f Tff7b72-Tff7b72> Te6edf3fTb4b4b4.Te6edf3isDirectory Tff7b72&Tff7b72& Te6edf3LOCALE_PATTERNTb4b4b4.Te6edf3matchesTb4b4b4(Te6edf3fTb4b4b4.Te6edf3nameTb4b4b4) Tff7b72&Tff7b72& Te6edf3fTb4b4b4.Te6edf3name Tff7b72!Tff7b72= Ta5d6ff"Ta5d6ffenTa5d6ff" Tb4b4b4}
Tff7b72?.Te6edf3sortedBy Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3name Tb4b4b4}
Tff7b72?.Te6edf3flatMap Tb4b4b4{ Te6edf3localeDir Tff7b72-Tff7b72>
Tff7b72val Te6edf3sectionDir Tff7b72= Te6edf3FileTb4b4b4(Te6edf3localeDirTb4b4b4, Ta5d6ff"Ta5d6ffuserTa5d6ff"Tb4b4b4)
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3sectionDirTb4b4b4.Te6edf3existsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTf0883e@flatMap Te6edf3emptyListTb4b4b4(Tb4b4b4)
Tb4b4b4}
Te6edf3sectionDir
Tb4b4b4.Te6edf3listFiles Tb4b4b4{ Te6edf3f Tff7b72-Tff7b72> Te6edf3fTb4b4b4.Te6edf3extension Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffmdTa5d6ff" Tb4b4b4}
Tff7b72?.Te6edf3sortedBy Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3name Tb4b4b4}
Tff7b72?.Te6edf3map Tb4b4b4{ Te6edf3processMarkdownTb4b4b4(Tffa657itTb4b4b4, Ta5d6ff"Ta5d6ffuserTa5d6ff"Tb4b4b4, Te6edf3localeDirTb4b4b4.Te6edf3nameTb4b4b4, Tff7b72outTb4b4b4) Tb4b4b4} Tff7b72?: Te6edf3emptyListTb4b4b4(Tb4b4b4)
Tb4b4b4} Tff7b72?: Te6edf3emptyListTb4b4b4(Tb4b4b4)
Tff7b72private Tff7b72fun Td2a8ffprocessMarkdownTb4b4b4(Te6edf3mdFileTb4b4b4: Te6edf3FileTb4b4b4, Te6edf3sectionTb4b4b4: Tffa657StringTb4b4b4, Te6edf3localeTb4b4b4: Tffa657StringTb4b4b4, Tff7b72outTb4b4b4: Te6edf3FileTb4b4b4)Tb4b4b4: Te6edf3IndexEntry Tb4b4b4{
Tff7b72val Te6edf3frontmatter Tff7b72= Te6edf3parseFrontmatterTb4b4b4(Te6edf3mdFileTb4b4b4)
Tff7b72val Te6edf3id Tff7b72= Te6edf3mdFileTb4b4b4.Te6edf3nameWithoutExtension
Tff7b72val Te6edf3title Tff7b72= Te6edf3frontmatterTff7b72[Ta5d6ff"Ta5d6fftitleTa5d6ff"Tff7b72] Tff7b72?: Te6edf3idTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff Ta5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3replaceFirstChar Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3uppercaseTb4b4b4(Tb4b4b4) Tb4b4b4}
Tff7b72val Te6edf3resourcePath Tff7b72= Tff7b72if Tb4b4b4(Te6edf3locale Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffenTa5d6ff"Tb4b4b4) Ta5d6ff"Ta5d6ffdocs/Tffd700$Te6edf3sectionTa5d6ff/Tffd700$Te6edf3idTa5d6ff.htmlTa5d6ff" Tff7b72else Ta5d6ff"Ta5d6ffdocs/Tffd700$Te6edf3localeTa5d6ff/Tffd700$Te6edf3sectionTa5d6ff/Tffd700$Te6edf3idTa5d6ff.htmlTa5d6ff"
Te6edf3FileTb4b4b4(Tff7b72outTb4b4b4, Te6edf3resourcePathTb4b4b4)Tb4b4b4.Te6edf3also Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3parentFileTb4b4b4.Te6edf3mkdirsTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4.Te6edf3writeTextTb4b4b4(Te6edf3generateHtmlTb4b4b4(Te6edf3mdFileTb4b4b4, Te6edf3titleTb4b4b4, Te6edf3localeTb4b4b4)Tb4b4b4)
Tff7b72return Te6edf3IndexEntryTb4b4b4(
Te6edf3id Tff7b72= Te6edf3idTb4b4b4,
Te6edf3title Tff7b72= Te6edf3titleTb4b4b4,
Te6edf3section Tff7b72= Te6edf3sectionTb4b4b4,
Te6edf3locale Tff7b72= Te6edf3localeTb4b4b4,
Te6edf3resourcePath Tff7b72= Te6edf3resourcePathTb4b4b4,
Te6edf3navOrder Tff7b72= Te6edf3frontmatterTff7b72[Ta5d6ff"Ta5d6ffnav_orderTa5d6ff"Tff7b72]Tff7b72?.Te6edf3toIntOrNullTb4b4b4(Tb4b4b4) Tff7b72?: Te6edf3DEFAULT_NAV_ORDERTb4b4b4,
Te6edf3keywords Tff7b72= Te6edf3extractKeywordsTb4b4b4(Te6edf3mdFileTb4b4b4, Te6edf3titleTb4b4b4)Tb4b4b4,
Te6edf3aliases Tff7b72= Te6edf3parseListFieldTb4b4b4(Te6edf3frontmatterTff7b72[Ta5d6ff"Ta5d6ffaliases_rawTa5d6ff"Tff7b72] Tff7b72?: Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3charCount Tff7b72= Te6edf3mdFileTb4b4b4.Te6edf3readTextTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3lengthTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffwriteIndexJsonTb4b4b4(Tff7b72outTb4b4b4: Te6edf3FileTb4b4b4, Te6edf3entriesTb4b4b4: Te6edf3ListTff7b72<Te6edf3IndexEntryTff7b72>Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3json Tff7b72=
Te6edf3entriesTb4b4b4.Te6edf3joinToStringTb4b4b4(Ta5d6ff"Ta5d6ff,Ta5d6ff\Ta5d6ffnTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff[Ta5d6ff\Ta5d6ffnTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff\Ta5d6ffn]Ta5d6ff"Tb4b4b4) Tb4b4b4{ Te6edf3e Tff7b72-Tff7b72>
Tff7b72val Te6edf3kw Tff7b72= Te6edf3eTb4b4b4.Te6edf3keywordsTb4b4b4.Te6edf3joinToStringTb4b4b4(Ta5d6ff"Ta5d6ff, Ta5d6ff"Tb4b4b4) Tb4b4b4{ Ta5d6ff"Ta5d6ff\"Tffd700$Te6edf3itTa5d6ff\"Ta5d6ff" Tb4b4b4}
Tff7b72val Te6edf3al Tff7b72= Te6edf3eTb4b4b4.Te6edf3aliasesTb4b4b4.Te6edf3joinToStringTb4b4b4(Ta5d6ff"Ta5d6ff, Ta5d6ff"Tb4b4b4) Tb4b4b4{ Ta5d6ff"Ta5d6ff\"Tffd700$Te6edf3itTa5d6ff\"Ta5d6ff" Tb4b4b4}
Ta5d6ff"""Ta5d6ff {Ta5d6ff"Ta5d6ffidTa5d6ff"Ta5d6ff:Ta5d6ff"Tffd700${Te6edf3eTb4b4b4.Te6edf3idTffd700}Ta5d6ff"Ta5d6ff,Ta5d6ff"Ta5d6fftitleTa5d6ff"Ta5d6ff:Ta5d6ff"Tffd700${Te6edf3eTb4b4b4.Te6edf3titleTffd700}Ta5d6ff"Ta5d6ff,Ta5d6ff"Ta5d6ffsectionTa5d6ff"Ta5d6ff:Ta5d6ff"Tffd700${Te6edf3eTb4b4b4.Te6edf3sectionTffd700}Ta5d6ff"Ta5d6ff,Ta5d6ff""" Tff7b72+
Ta5d6ff"""Ta5d6ff"Ta5d6fflocaleTa5d6ff"Ta5d6ff:Ta5d6ff"Tffd700${Te6edf3eTb4b4b4.Te6edf3localeTffd700}Ta5d6ff"Ta5d6ff,Ta5d6ff"Ta5d6ffresourcePathTa5d6ff"Ta5d6ff:Ta5d6ff"Tffd700${Te6edf3eTb4b4b4.Te6edf3resourcePathTffd700}Ta5d6ff"Ta5d6ff,Ta5d6ff""" Tff7b72+
Ta5d6ff"""Ta5d6ff"Ta5d6ffnavOrderTa5d6ff"Ta5d6ff:Tffd700${Te6edf3eTb4b4b4.Te6edf3navOrderTffd700}Ta5d6ff,Ta5d6ff"Ta5d6ffkeywordsTa5d6ff"Ta5d6ff:[Tffd700$Te6edf3kwTa5d6ff],Ta5d6ff"Ta5d6ffaliasesTa5d6ff"Ta5d6ff:[Tffd700$Te6edf3alTa5d6ff],Ta5d6ff"Ta5d6ffcharCountTa5d6ff"Ta5d6ff:Tffd700${Te6edf3eTb4b4b4.Te6edf3charCountTffd700}Ta5d6ff}Ta5d6ff"""
Tb4b4b4}
Te6edf3FileTb4b4b4(Tff7b72outTb4b4b4, Ta5d6ff"Ta5d6ffindex.jsonTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3writeTextTb4b4b4(Te6edf3jsonTb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffwriteCssTb4b4b4(Tff7b72outTb4b4b4: Te6edf3FileTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3cssDir Tff7b72= Te6edf3FileTb4b4b4(Tff7b72outTb4b4b4, Ta5d6ff"Ta5d6ffdocs/stylesTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3also Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3mkdirsTb4b4b4(Tb4b4b4) Tb4b4b4}
Te6edf3FileTb4b4b4(Te6edf3cssDirTb4b4b4, Ta5d6ff"Ta5d6ffdocs.cssTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3writeTextTb4b4b4(Te6edf3generateCssTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffwriteLocalesManifestTb4b4b4(Te6edf3srcTb4b4b4: Te6edf3FileTb4b4b4, Tff7b72outTb4b4b4: Te6edf3FileTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3locales Tff7b72=
Te6edf3srcTb4b4b4.Te6edf3listFiles Tb4b4b4{ Te6edf3f Tff7b72-Tff7b72> Te6edf3fTb4b4b4.Te6edf3isDirectory Tff7b72&Tff7b72& Te6edf3LOCALE_PATTERNTb4b4b4.Te6edf3matchesTb4b4b4(Te6edf3fTb4b4b4.Te6edf3nameTb4b4b4) Tff7b72&Tff7b72& Te6edf3fTb4b4b4.Te6edf3name Tff7b72!Tff7b72= Ta5d6ff"Ta5d6ffenTa5d6ff" Tb4b4b4}
Tff7b72?.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3name Tb4b4b4}
Tff7b72?.Te6edf3sortedTb4b4b4(Tb4b4b4) Tff7b72?: Te6edf3emptyListTb4b4b4(Tb4b4b4)
Te6edf3FileTb4b4b4(Tff7b72outTb4b4b4, Ta5d6ff"Ta5d6fflocales.jsonTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3writeTextTb4b4b4(Te6edf3localesTb4b4b4.Te6edf3joinToStringTb4b4b4(Ta5d6ff"Ta5d6ff, Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff[Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff]Ta5d6ff"Tb4b4b4) Tb4b4b4{ Ta5d6ff"Ta5d6ff\"Tffd700$Te6edf3itTa5d6ff\"Ta5d6ff" Tb4b4b4}Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffparseFrontmatterTb4b4b4(Te6edf3fileTb4b4b4: Te6edf3FileTb4b4b4)Tb4b4b4: Te6edf3MapTff7b72<Tffa657StringTb4b4b4, Tffa657StringTff7b72> Tb4b4b4{
Tff7b72val Te6edf3lines Tff7b72= Te6edf3fileTb4b4b4.Te6edf3readLinesTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3endIndex Tff7b72=
Te6edf3lines
Tb4b4b4.Te6edf3takeIf Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3firstOrNullTb4b4b4(Tb4b4b4)Tff7b72?.Te6edf3trimTb4b4b4(Tb4b4b4) Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ff---Ta5d6ff" Tb4b4b4}
Tff7b72?.Te6edf3dropTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72?.Te6edf3indexOfFirst Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4) Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ff---Ta5d6ff" Tb4b4b4}
Tff7b72?.Te6edf3takeIf Tb4b4b4{ Tffa657it Tff7b72>Tff7b72= T79c0ff0 Tb4b4b4} Tff7b72?: Tff7b72return Te6edf3emptyMapTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3result Tff7b72= Te6edf3mutableMapOfTff7b72<Tffa657StringTb4b4b4, Tffa657StringTff7b72>Tb4b4b4(Tb4b4b4)
Tff7b72var Te6edf3inAliases Tff7b72= Tff7b72false
Tff7b72val Te6edf3aliasesBuilder Tff7b72= Te6edf3StringBuilderTb4b4b4(Tb4b4b4)
Tff7b72for Tb4b4b4(Te6edf3line Tff7b72in Te6edf3linesTb4b4b4.Te6edf3subListTb4b4b4(T79c0ff1Tb4b4b4, Te6edf3endIndex Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72when Tb4b4b4{
Te6edf3lineTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"Ta5d6ffaliases:Ta5d6ff"Tb4b4b4) Tff7b72-Tff7b72> Te6edf3inAliases Tff7b72= Tff7b72true
Te6edf3inAliases Tff7b72&Tff7b72& Te6edf3lineTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"Ta5d6ff - Ta5d6ff"Tb4b4b4) Tff7b72-Tff7b72> Te6edf3aliasesBuilderTb4b4b4.Te6edf3appendTb4b4b4(Te6edf3lineTb4b4b4.Te6edf3removePrefixTb4b4b4(Ta5d6ff"Ta5d6ff - Ta5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3appendTb4b4b4(Ta5d6ff"Ta5d6ff,Ta5d6ff"Tb4b4b4)
Te6edf3inAliases Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3inAliases Tff7b72= Tff7b72false
Te6edf3resultTff7b72[Ta5d6ff"Ta5d6ffaliases_rawTa5d6ff"Tff7b72] Tff7b72= Te6edf3aliasesBuilderTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3trimEndTb4b4b4(Ta5d6ff','Tb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3lineTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"Ta5d6ff:Ta5d6ff"Tb4b4b4)Tb4b4b4) Te6edf3result Tff7b72+Tff7b72= Te6edf3parseLineTb4b4b4(Te6edf3lineTb4b4b4)
Tb4b4b4}
Tff7b72!Te6edf3inAliases Tff7b72&Tff7b72& Te6edf3lineTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"Ta5d6ff:Ta5d6ff"Tb4b4b4) Tff7b72-Tff7b72> Te6edf3result Tff7b72+Tff7b72= Te6edf3parseLineTb4b4b4(Te6edf3lineTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3inAliasesTb4b4b4) Te6edf3resultTff7b72[Ta5d6ff"Ta5d6ffaliases_rawTa5d6ff"Tff7b72] Tff7b72= Te6edf3aliasesBuilderTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3trimEndTb4b4b4(Ta5d6ff','Tb4b4b4)
Tff7b72return Te6edf3result
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffparseLineTb4b4b4(Te6edf3lineTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Te6edf3MapTff7b72<Tffa657StringTb4b4b4, Tffa657StringTff7b72> Tb4b4b4{
Tff7b72val Tb4b4b4(Te6edf3keyTb4b4b4, Te6edf3valueTb4b4b4) Tff7b72= Te6edf3lineTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"Ta5d6ff:Ta5d6ff"Tb4b4b4, Te6edf3limit Tff7b72= T79c0ff2Tb4b4b4)
Tff7b72return Te6edf3mapOfTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4) Te6edf3to Te6edf3valueTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffparseListFieldTb4b4b4(Te6edf3rawTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Te6edf3ListTff7b72<Tffa657StringTff7b72> Tff7b72= Te6edf3rawTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"Ta5d6ff,Ta5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4.Te6edf3filter Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4) Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffextractKeywordsTb4b4b4(Te6edf3fileTb4b4b4: Te6edf3FileTb4b4b4, Te6edf3titleTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Te6edf3ListTff7b72<Tffa657StringTff7b72> Tb4b4b4{
Tff7b72val Te6edf3text Tff7b72= Te6edf3fileTb4b4b4.Te6edf3readTextTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3lowercaseTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3keywords Tff7b72= Te6edf3mutableSetOfTff7b72<Tffa657StringTff7b72>Tb4b4b4(Tb4b4b4)
Te6edf3titleTb4b4b4.Te6edf3lowercaseTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3splitTb4b4b4(Te6edf3RegexTb4b4b4(Ta5d6ff"Ta5d6ff[^a-z0-9]+Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3filter Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3length Tff7b72>Tff7b72= Te6edf3MIN_KEYWORD_LENGTH Tb4b4b4}Tb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3keywordsTb4b4b4.Te6edf3addTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}
Te6edf3RegexTb4b4b4(Ta5d6ff"Ta5d6ff^#{1,3}Ta5d6ff\\Ta5d6ffs+(.+)$Ta5d6ff"Tb4b4b4, Te6edf3RegexOptionTb4b4b4.Te6edf3MULTILINETb4b4b4)Tb4b4b4.Te6edf3findAllTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3match Tff7b72-Tff7b72>
Te6edf3matchTb4b4b4.Te6edf3groupValuesTff7b72[T79c0ff1Tff7b72]
Tb4b4b4.Te6edf3splitTb4b4b4(Te6edf3RegexTb4b4b4(Ta5d6ff"Ta5d6ff[^a-z0-9]+Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4.Te6edf3filter Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3length Tff7b72>Tff7b72= Te6edf3MIN_KEYWORD_LENGTH Tb4b4b4}
Tb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3keywordsTb4b4b4.Te6edf3addTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3keywordsTb4b4b4.Te6edf3toListTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3takeTb4b4b4(Te6edf3MAX_KEYWORDSTb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffgenerateHtmlTb4b4b4(Te6edf3mdFileTb4b4b4: Te6edf3FileTb4b4b4, Te6edf3titleTb4b4b4: Tffa657StringTb4b4b4, Te6edf3localeTb4b4b4: Tffa657String Tff7b72= Ta5d6ff"Ta5d6ffenTa5d6ff"Tb4b4b4)Tb4b4b4: Tffa657String Tb4b4b4{
Tff7b72val Te6edf3content Tff7b72=
Te6edf3mdFile
Tb4b4b4.Te6edf3readTextTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Te6edf3RegexTb4b4b4(Ta5d6ff"Ta5d6ff^---[Ta5d6ff\\Ta5d6ffsTa5d6ff\\Ta5d6ffS]*?---Ta5d6ff\\Ta5d6ffs*Ta5d6ff"Tb4b4b4, Te6edf3RegexOptionTb4b4b4.Te6edf3MULTILINETb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff"Ta5d6ff&Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff&Ta5d6ff"Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff"Ta5d6ff<Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff<Ta5d6ff"Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff"Ta5d6ff>Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff>Ta5d6ff"Tb4b4b4)
Tff7b72val Te6edf3dir Tff7b72= Tff7b72if Tb4b4b4(Te6edf3locale Tff7b72=Tff7b72= Ta5d6ff"Ta5d6ffarTa5d6ff"Tb4b4b4) Ta5d6ff"Ta5d6ffrtlTa5d6ff" Tff7b72else Ta5d6ff"Ta5d6ffltrTa5d6ff"
Tff7b72val Te6edf3cssPath Tff7b72= Tff7b72if Tb4b4b4(Te6edf3locale Tff7b72!Tff7b72= Ta5d6ff"Ta5d6ffenTa5d6ff"Tb4b4b4) Ta5d6ff"Ta5d6ff../../styles/docs.cssTa5d6ff" Tff7b72else Ta5d6ff"Ta5d6ff../styles/docs.cssTa5d6ff"
Tff7b72return Ta5d6ff"""
Ta5d6ff |<!DOCTYPE html>
|<html lang=Ta5d6ff"Tffd700$Te6edf3localeTa5d6ff"Ta5d6ff dir=Ta5d6ff"Tffd700$Te6edf3dirTa5d6ff"Ta5d6ff>
|<head>
| <meta charset=Ta5d6ff"Ta5d6ffUTF-8Ta5d6ff"Ta5d6ff>
| <meta name=Ta5d6ff"Ta5d6ffviewportTa5d6ff"Ta5d6ff content=Ta5d6ff"Ta5d6ffwidth=device-width, initial-scale=1.0Ta5d6ff"Ta5d6ff>
| <title>Tffd700$Te6edf3titleTa5d6ff</title>
| <link rel=Ta5d6ff"Ta5d6ffstylesheetTa5d6ff"Ta5d6ff href=Ta5d6ff"Tffd700$Te6edf3cssPathTa5d6ff"Ta5d6ff>
|</head>
|<body data-page=Ta5d6ff"Tffd700${Te6edf3mdFileTb4b4b4.Te6edf3nameWithoutExtensionTffd700}Ta5d6ff"Ta5d6ff data-locale=Ta5d6ff"Tffd700$Te6edf3localeTa5d6ff"Ta5d6ff>
|<pre class=Ta5d6ff"Ta5d6ffmarkdown-contentTa5d6ff"Ta5d6ff>Tffd700$Te6edf3contentTa5d6ff</pre>
|</body>
|</html>
Ta5d6ff"""
Tb4b4b4.Te6edf3trimMarginTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffgenerateCssTb4b4b4(Tb4b4b4)Tb4b4b4: Tffa657String Tff7b72=
Ta5d6ff"""
Ta5d6ff |:root {
| --primary: #2C2D3C;
| --accent: #67EA94;
| --accent-text: #3FB86D;
| --info: #5C6BC0;
| --warning: #E8A33E;
| --error: #E05252;
|}
|body {
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
| line-height: 1.6;
| padding: 16px;
| color: var(--primary);
| max-width: 800px;
| margin: 0 auto;
|}
|@media (prefers-color-scheme: dark) {
| body { background: #1A1B26; color: #ECEDF3; }
| pre { background: #2C2D3C; }
|}
|pre.markdown-content {
| white-space: pre-wrap;
| word-wrap: break-word;
| font-family: inherit;
| background: transparent;
| padding: 0;
| margin: 0;
|}
|.callout-info { border-left: 4px solid var(--info); padding: 12px; background: #E8EAF6; margin: 12px 0; }
|.callout-warning { border-left: 4px solid var(--warning); padding: 12px; background: #FFF3E0; margin: 12px 0; }
|.callout-error { border-left: 4px solid var(--error); padding: 12px; background: #FDEAEA; margin: 12px 0; }
Ta5d6ff"""
Tb4b4b4.Te6edf3trimMarginTb4b4b4(Tb4b4b4)
Tff7b72abstract Tff7b72class T56d364ValidateDocsBundleTask Tb4b4b4: Te6edf3DefaultTaskTb4b4b4(Tb4b4b4) Tb4b4b4{
Tf0883e@getTb4b4b4:Te6edf3InputDirectory Tf0883e@getTb4b4b4:Te6edf3Optional
Tff7b72abstract Tff7b72val Te6edf3bundleDirTb4b4b4: Te6edf3DirectoryProperty
Tf0883e@getTb4b4b4:Te6edf3InputFile Tf0883e@getTb4b4b4:Te6edf3Optional
Tff7b72abstract Tff7b72val Te6edf3schemaFileTb4b4b4: Te6edf3RegularFileProperty
Tf0883e@TaskAction
Tff7b72fun Td2a8ffvalidateTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3dir Tff7b72= Te6edf3bundleDirTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFile
Tff7b72val Te6edf3indexFile Tff7b72= Te6edf3FileTb4b4b4(Te6edf3dirTb4b4b4, Ta5d6ff"Ta5d6ffindex.jsonTa5d6ff"Tb4b4b4)
Tff7b72val Te6edf3errors Tff7b72= Te6edf3mutableListOfTff7b72<Tffa657StringTff7b72>Tb4b4b4(Tb4b4b4)
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3indexFileTb4b4b4.Te6edf3existsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3errorsTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff"Ta5d6ffindex.json not found in Tffd700${Te6edf3dirTb4b4b4.Te6edf3absolutePathTffd700}Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72val Te6edf3indexContent Tff7b72= Tff7b72if Tb4b4b4(Te6edf3indexFileTb4b4b4.Te6edf3existsTb4b4b4(Tb4b4b4)Tb4b4b4) Te6edf3indexFileTb4b4b4.Te6edf3readTextTb4b4b4(Tb4b4b4) Tff7b72else Ta5d6ff"Ta5d6ff"
Tff7b72if Tb4b4b4(Te6edf3indexContentTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4) Tff7b72&Tff7b72& Tff7b72!Te6edf3indexContentTb4b4b4.Te6edf3trimStartTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"Ta5d6ff[Ta5d6ff"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3errorsTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff"Ta5d6ffindex.json must be a JSON arrayTa5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72val Te6edf3sizeMb Tff7b72= Te6edf3dirTb4b4b4.Te6edf3walkTopDownTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3filter Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3isFile Tb4b4b4}Tb4b4b4.Te6edf3sumOf Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3lengthTb4b4b4(Tb4b4b4) Tb4b4b4} Tff7b72/ Te6edf3BYTES_PER_MB
Tff7b72if Tb4b4b4(Te6edf3sizeMb Tff7b72> Te6edf3BUNDLE_SIZE_HARD_LIMIT_MBTb4b4b4) Tb4b4b4{
Te6edf3errorsTb4b4b4.Te6edf3addTb4b4b4(
Ta5d6ff"Ta5d6ffBundle size Tffd700${Tffa657StringTb4b4b4.Te6edf3formatTb4b4b4(Ta5d6ff"Tff7b72%Tb4b4b4.T79c0ff2fTa5d6ff"Tb4b4b4, Te6edf3sizeMbTb4b4b4)Tffd700}Ta5d6ff MB exceeds Tffd700$Te6edf3BUNDLE_SIZE_HARD_LIMIT_MBTa5d6ff MB hard limitTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3sizeMb Tff7b72> Te6edf3BUNDLE_SIZE_WARN_THRESHOLD_MBTb4b4b4) Tb4b4b4{
Te6edf3loggerTb4b4b4.Te6edf3warnTb4b4b4(
Ta5d6ff"Ta5d6ffBundle size Tffd700${Tffa657StringTb4b4b4.Te6edf3formatTb4b4b4(
Ta5d6ff"Tff7b72%Tb4b4b4.T79c0ff2fTa5d6ff"Tb4b4b4,
Te6edf3sizeMbTb4b4b4,
Tb4b4b4)Tffd700}Ta5d6ff MB exceeds Tffd700$Te6edf3BUNDLE_SIZE_WARN_THRESHOLD_MBTa5d6ff MB warning thresholdTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3indexContentTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3paths Tff7b72=
Te6edf3RegexTb4b4b4(Ta5d6ff"Ta5d6ff\"Ta5d6ffresourcePathTa5d6ff\"Ta5d6ff\\Ta5d6ffs*:Ta5d6ff\\Ta5d6ffs*Ta5d6ff\"Ta5d6ff([^Ta5d6ff\"Ta5d6ff]+)Ta5d6ff\"Ta5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3findAllTb4b4b4(Te6edf3indexContentTb4b4b4)Tb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3groupValuesTff7b72[T79c0ff1Tff7b72] Tb4b4b4}Tb4b4b4.Te6edf3toListTb4b4b4(Tb4b4b4)
Te6edf3pathsTb4b4b4.Te6edf3filter Tb4b4b4{ Tff7b72!Te6edf3FileTb4b4b4(Te6edf3dirTb4b4b4, Tffa657itTb4b4b4)Tb4b4b4.Te6edf3existsTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3errorsTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff"Ta5d6ffMissing page file: Tffd700$Te6edf3itTa5d6ff"Tb4b4b4) Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3errorsTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3loggerTb4b4b4.Te6edf3lifecycleTb4b4b4(
Ta5d6ff"Ta5d6ffDocs bundle validation PASSED: Tffd700${Te6edf3pathsTb4b4b4.Te6edf3sizeTffd700}Ta5d6ff pages, Tffd700${Tffa657StringTb4b4b4.Te6edf3formatTb4b4b4(Ta5d6ff"Tff7b72%Tb4b4b4.T79c0ff2fTa5d6ff"Tb4b4b4, Te6edf3sizeMbTb4b4b4)Tffd700}Ta5d6ff MBTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3errorsTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72throw Te6edf3orgTb4b4b4.Te6edf3gradleTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3GradleExceptionTb4b4b4(Te6edf3errorsTb4b4b4.Te6edf3joinToStringTb4b4b4(Ta5d6ff"Ta5d6ff\Ta5d6ffnTa5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72abstract Tff7b72class T56d364PublishDocsSiteTask Tb4b4b4: Te6edf3DefaultTaskTb4b4b4(Tb4b4b4) Tb4b4b4{
Tf0883e@getTb4b4b4:Te6edf3InputDirectory Tff7b72abstract Tff7b72val Te6edf3sourceDirTb4b4b4: Te6edf3DirectoryProperty
Tf0883e@getTb4b4b4:Te6edf3InputDirectory Tff7b72abstract Tff7b72val Te6edf3bundleDirTb4b4b4: Te6edf3DirectoryProperty
Tf0883e@getTb4b4b4:Te6edf3OutputDirectory Tff7b72abstract Tff7b72val Te6edf3siteOutputDirTb4b4b4: Te6edf3DirectoryProperty
Tf0883e@getTb4b4b4:Te6edf3Input Tff7b72abstract Tff7b72val Te6edf3channelTb4b4b4: Te6edf3PropertyTff7b72<Tffa657StringTff7b72>
Tf0883e@getTb4b4b4:Te6edf3Input Tff7b72abstract Tff7b72val Te6edf3versionTb4b4b4: Te6edf3PropertyTff7b72<Tffa657StringTff7b72>
Tf0883e@TaskAction
Tff7b72fun Td2a8ffpublishTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3siteDir Tff7b72= Te6edf3siteOutputDirTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFile
Tff7b72val Te6edf3channelPath Tff7b72=
Tff7b72when Tb4b4b4(Te6edf3channelTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Ta5d6ff"Ta5d6ffreleaseTa5d6ff" Tff7b72-Tff7b72> Ta5d6ff"Ta5d6ffvTffd700${Te6edf3versionTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff"
Ta5d6ff"Ta5d6ffrootTa5d6ff" Tff7b72-Tff7b72> Ta5d6ff"Ta5d6ff"
Tff7b72else Tff7b72-Tff7b72> Te6edf3channelTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72val Te6edf3outDir Tff7b72= Tff7b72if Tb4b4b4(Te6edf3channelPathTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Te6edf3siteDir Tff7b72else Te6edf3FileTb4b4b4(Te6edf3siteDirTb4b4b4, Te6edf3channelPathTb4b4b4)
Te6edf3outDirTb4b4b4.Te6edf3mkdirsTb4b4b4(Tb4b4b4)
Te6edf3bundleDirTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFileTb4b4b4.Te6edf3copyRecursivelyTb4b4b4(Te6edf3outDirTb4b4b4, Te6edf3overwrite Tff7b72= Tff7b72trueTb4b4b4)
Te6edf3sourceDir
Tb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3asFile
Tb4b4b4.Te6edf3listFilesTb4b4b4(Tb4b4b4)
Tff7b72?.Te6edf3filter Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3name Tff7b72!Tff7b72= Ta5d6ff"Ta5d6ff_siteTa5d6ff" Tff7b72&Tff7b72& Tffa657itTb4b4b4.Te6edf3name Tff7b72!Tff7b72= Ta5d6ff"Ta5d6ff.jekyll-cacheTa5d6ff" Tb4b4b4}
Tff7b72?.Te6edf3forEach Tb4b4b4{ Te6edf3f Tff7b72-Tff7b72>
Tff7b72if Tb4b4b4(Te6edf3fTb4b4b4.Te6edf3isDirectoryTb4b4b4) Tb4b4b4{
Te6edf3fTb4b4b4.Te6edf3copyRecursivelyTb4b4b4(Te6edf3FileTb4b4b4(Te6edf3outDirTb4b4b4, Te6edf3fTb4b4b4.Te6edf3nameTb4b4b4)Tb4b4b4, Te6edf3overwrite Tff7b72= Tff7b72trueTb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3fTb4b4b4.Te6edf3copyToTb4b4b4(Te6edf3FileTb4b4b4(Te6edf3outDirTb4b4b4, Te6edf3fTb4b4b4.Te6edf3nameTb4b4b4)Tb4b4b4, Te6edf3overwrite Tff7b72= Tff7b72trueTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Te6edf3loggerTb4b4b4.Te6edf3lifecycleTb4b4b4(Ta5d6ff"Ta5d6ffPublished docs site to: Tffd700${Te6edf3outDirTb4b4b4.Te6edf3absolutePathTffd700}Ta5d6ff (channel=Tffd700$Te6edf3channelPathTa5d6ff)Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.21s